XSL Transformations (XSLT) is a standard way to describe how to transform the structure of a first Extensible Markup Language (XML) document into a markup language document with a different structure. Extensible Stylesheet Language (XSL), XML, and XSLT are recommendations of the World Wide Web Consortium (W3C). There may be any number of versions of such recommendations, as with other electronics industry standards, and any versions are contemplated when such recommendations and standards are referenced herein. Specific versions are noted when helpful to the explanation.
Straightforward implementations of declarative languages are prohibitively inefficient. Dozens of XSLT processors are on the market, and they explore many different, non-trivial optimizations that aim to provide adequate execution performance and memory footprint.
Present optimization opportunities include: XPath expression normalization, XPath expression special casing, simple type inference, special casing of queries with singleton results, document-order preserving implementations that minimize or eliminate the need for sorting, efficient run-time representations of the input tree, symbolic representation of the templates as highly resolved expressions trees, output streaming, lazy evaluation, common subexpression elimination, compilation to byte code, and Just-In-Timing (JITing).
This field is still in flux. A consolidated opinion does not exist regarding the question whether the effort for a full-blown compiler is worth it, given the challenges of setting up a compiler architecture for XSLT. However, it increasingly appears the limits of non-compiling implementations are somewhat exhausted, and although compiler implementation requires major efforts, it may be an important next step in obtaining further gains.
Performance of XSLT processors is an important characteristic for XML users. The field is highly competitive, with each product achieving improvements and gains on a year-to-year basis. Presently, XslCompiledTransform is arguably the fastest, standard-compliant implementation. It is included in .NET 2.0. XslCompiledTransform comprises an implementation of focus interference technology, a highly original and XSLT-tailored optimization. Development of focus inference required deep insight and a vital refinement of techniques for compiler optimizations so that XSLT is faithfully modeled.